package com.yunxi.otd.pojo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.core.web.DateJsonDeserializer;
import com.yunxi.vehicle.pojo.VehicleProductViewVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 生产计划
 * </p>
 *
 * @author XUQI
 * @since 2019-05-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "OtdIfProducePlanVO对象", description = "生产计划接口表VO")
public class OtdIfProducePlanVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "生产计划ID")
    private String ifPlanId;

    @ApiModelProperty(value = "生产计划号")
    private String planNo;

    @ApiModelProperty(value = "周生产需求CODE")
    private String weekPlanCode;

    @ApiModelProperty(value = "产品编码")
    private String productCode;

    @ApiModelProperty(value = "产品信息")
    private VehicleProductViewVO product;

    @ApiModelProperty(value = "选装包CODE")
    private String customPackCode;

    @ApiModelProperty(value = "选装包名称")
    private String customPackName;

    @ApiModelProperty(value = "计划年")
    private String orderYear;

    @ApiModelProperty(value = "计划月")
    private String orderMonth;

    @ApiModelProperty(value = "计划周")
    private String orderWeek;

    @JsonDeserialize(using = DateJsonDeserializer.class)
    @ApiModelProperty(value = "预计生产日期")
    private Date expectedDemandDate;

    @ApiModelProperty(value = "订单车编号")
    private String cusOrderNo;

    @ApiModelProperty(value = "项目用车编号")
    private String projectCarNo;

    @ApiModelProperty(value = "接口类型 I：新增  U：更新  D：删除")
    private String interfaceType;

    @ApiModelProperty(value = "经销商编号")
    private String dealerNo;

    @ApiModelProperty(value = "车系")
    private String vehicleCode;

    @ApiModelProperty(value = "订单类型")
    private String orderType;

    @ApiModelProperty(value = "变量车型（15位物料码）")
    private String carModel;

    @ApiModelProperty(value = "整车描述")
    private String carName;

    @ApiModelProperty(value = "电池包编码")
    private String zzpack;

    @ApiModelProperty(value = "客户需求日期")
    private Date requestDate;

    @ApiModelProperty(value = "整车下线限制类型")
    private String carLimitState;

    @ApiModelProperty(value = "整车下线库存限制原因")
    private String carLimitReason;

    @ApiModelProperty(value = "车架号")
    private String vin;

    @ApiModelProperty(value = "锁定标识 X.锁定(下线不能卖)")
    private String lockFlag;

    @ApiModelProperty(value = "生产优先级")
    private String priority;

    @ApiModelProperty(value = "工厂")
    private String works;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @JsonDeserialize(using = DateJsonDeserializer.class)
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    @ApiModelProperty(value = "最后修改人")
    private String updateBy;

    @JsonDeserialize(using = DateJsonDeserializer.class)
    @ApiModelProperty(value = "最后修改时间")
    private Date updateDate;

    @ApiModelProperty(value = "接口传送标识")
    private Integer isSend = 0;

    @ApiModelProperty(value = "版本号")
    private Integer version = 0;

    @ApiModelProperty(value = "SAP接口状态 N待发送 W待反馈 S成功 E异常")
    private String sapState;

    @ApiModelProperty(value = "是否删除")
    private Integer isDel = 0;

    @ApiModelProperty(value = "SAP订单号")
    private String sapNo;

    @ApiModelProperty(value = "异常信息")
    private String errorInfo;

}
